1
Функциональная парадигма: Трансформация вместо изменения
AI019Lesson 2
00:00

Функциональная парадигма меняет мышление разработчика, смещая его внимание с «обновления состояния» к применению математических преобразований к неизменяемым значениям. В Эликсире данные никогда не изменяются — они просто рождаются заново в новых формах.

1. Математическое утверждение

Когда вы пишете $x = a + 1$, вы не присваиваете результат переменной. Вместо этого вы просто утверждаете что выражения $x$ и $a + 1$ имеют одинаковое значение. Это соответствует алгебраической логике, где $x$ представляет фиксированное значение в конкретном контексте.

2. Неизменяемость как гарантия

В Эликсире все значения неизменяемы. Данные не могут быть изменены после создания. Это устраняет «побочные эффекты», при которых функция может неожиданно изменить глобальную переменную или переданный объект, обеспечивая предсказуемость и безопасность кода для многопоточного выполнения.

ДО (входные данные)"elixir"String.capitalizeПОСЛЕ (результат)"Elixir"Исходные данные остаются без изменений

3. Трансформация против изменения

Мы никогда не изменяем данные напрямую. В Эликсире нет оператора присваивания; вместо этого он пытается соответствовать значениям шаблонам. Чтобы «изменить» значение, мы передаём исходные данные через функцию, чтобы создать полностью новую версию.

iex> name = "elixir"
"elixir"
iex> cap_name = String.capitalize name
"Elixir"
iex> name
"elixir" (Последний экземпляр!)
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>